#pragma once

#include "Token.h"
#include "ErrorHandle.h"
#include <string>
#include <vector>

struct production_exception : virtual exception_base{};

typedef boost::error_info<struct tag_current_char_count, int> current_char_count;
typedef boost::error_info<struct tag_current_char, char> current_char;
typedef boost::error_info<struct tag_current_production, std::string> current_production;

class CProductionParser
{
public:

    std::vector<Token_Type> Parse(std::string production);
};